/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package algoritmomemetico;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Vector;

/**Esta clase se encarga de cargar la informacion necesaria de los trabajadores 
 *
 * @author Victor
 */
public class TrabajadorBeanFunction {
    /**Retorna un hashmap que contiene los datos necesarios de los trabajadores para realizar la simulacion
     * 
     **/
    public HashMap<String,TrabajadorBeanData> cargarTrabajadores(){
        
        String csvFile = "build/classes/archivos/trabajadores.csv";
	BufferedReader br = null;
	String line = "";
	String cvsSplitBy = ",";
        HashMap<String,TrabajadorBeanData> trabajadores=new HashMap<String,TrabajadorBeanData>();
        int i=0;
	try {
 
		br = new BufferedReader(new FileReader(csvFile));
		while ((line = br.readLine()) != null) {
		        // use comma as separator
			String[] datos = line.split(cvsSplitBy);
                        TrabajadorBeanData trabajador= new TrabajadorBeanData();
                        trabajador.setCodigo(datos[0]);
                        i=1;
                        Vector<RendimientoBeanData> rendimientoS= new Vector<>();
                        RendimientoBeanData rendimiento;
                        HashMap<String,Integer> map= new HashMap();
                        int j=0;
                        while(i<datos.length){
                            rendimiento=new RendimientoBeanData();
                            rendimiento.setCodMaquina(datos[i]);
                            rendimiento.setProduccion(Float.valueOf(datos[i+1]));
                            rendimiento.setPerdida(Float.valueOf(datos[i+2]));
                            rendimientoS.add(rendimiento);
                            map.put(rendimiento.getCodMaquina(),Integer.valueOf(j));
                            i+=3;
                            j++;                            
                        }
                        trabajador.setRendimiento(rendimientoS);
                        trabajadores.put(trabajador.getCodigo(),trabajador);
		}
                
                return trabajadores;
                
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		if (br != null) {
			try {
				br.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
        return null;

    }
    
}
